package com.yangguang.huahui.api;

import com.yangguang.huahui.Config;
import com.yangguang.huahui.R;
import com.yangguang.huahui.entity.Attention;
import com.yangguang.huahui.entity.AttentionList;
import com.yangguang.huahui.entity.Contact;
import com.yangguang.huahui.entity.FlowersType;
import com.yangguang.huahui.entity.Guige;
import com.yangguang.huahui.entity.HttpResult;
import com.yangguang.huahui.entity.PersonInfo;
import com.yangguang.huahui.entity.SelectData;
import com.yangguang.huahui.entity.Sellers;

import java.util.List;
import java.util.Map;

import okhttp3.ResponseBody;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
import rx.Observable;

/**
 * Created by Administrator on 2017/3/2.
 */

public interface CommonApi {
    /**
     * 关注栏目
     * @return
     */
    @GET(Config.ATTENTION)
    Observable<Attention> getTabs();

    /**
     * 关注列表
     * @param id
     * @return
     */
    @GET(Config.ATTENTION_LIST)
    Observable<AttentionList> getListData(@Query("id") String id);

    /**
     * 获取个人信息
     * @param uid
     * @return
     */
    @GET(Config.INFORMATION)
    Observable<PersonInfo> getInfo(@Query("uid") String uid);

    /**
     * 编辑个人信息
     * @param map
     * @param sign
     * @return
     */
    @FormUrlEncoded
    @POST(Config.INFORMATION)
    Observable<PersonInfo> editInfo(@FieldMap Map<String, String> map, @Field("sign") String sign);

    /**
     * 获取筛选的数据
     * @param type
     * @return
     */
    @GET(Config.LIST_SELECT)
    Observable<SelectData> getSelectData(@Query("type") int type);

    /**
     * 获取城市信息
     * @return
     */
    @GET(Config.AREADATA)
    Observable<ResponseBody> getArea();

    /**
     * 花种类别
     * @return
     */
    @GET(Config.FLOWERS_TYPE)
    Observable<FlowersType> getFlowers_type();

    /**
     * 规格
     * @param id
     * @return
     */
    @GET(Config.GET_NORM)
    Observable<Guige> getNorm(@Query("id") String id);

    /**
     * 拉黑
     * @param to_uid
     * @param for_uid
     * @return
     */
    @FormUrlEncoded
    @POST(Config.ADD_BLACK)
    Observable<HttpResult> add_to_black(@Field("to_uid") String to_uid, @Field("for_uid") String for_uid);

    /**
     * 黑名单
     * @param uid
     * @return
     */
    @GET(Config.BLACKLIST)
    Observable<Contact> getBlacklist(@Query("uid") String uid);

    /**
     * 移除黑名单
     * @param id
     * @return
     */
    @FormUrlEncoded
    @POST(Config.REMOVE_BLACK)
    Observable<HttpResult> remove_black(@Field("id") String id);

    /**
     * 添加收藏
     * @param uid
     * @param id 详情的id
     * @param type 1=客户需求，8=苗木，9=花卉，10=农资，23=农机
     * @return
     */
    @FormUrlEncoded
    @POST(Config.ADD_COLLECTION)
    Observable<HttpResult> add_collection(@Field("uid") String uid, @Field("type") int type, @Field("title_id") String id);

    /**
     * 收藏列表
     * @param uid
     * @param type 1=客户需求，8=苗木，9=花卉，10=农资，23=农机
     * @return
     */
    @GET(Config.COLLECTION_LIST)
    Observable<ResponseBody> getCollections(@Query("uid") String uid, @Query("type") int type);


    /**
     *  找客户
     * @param page 页数
     * @param servicearea
     * @param category
     * @param identity
     * @param authentication
     * @return
     */
    @GET(Config.FIND_USERLIST)
    Observable<Sellers> getSellers(@Query("page") int page, @Query("servicearea") String servicearea, @Query("category") String category,
                                   @Query("identity") String identity, @Query("firm_authentication") String authentication);
}
